博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于spring3注解的google分页
阅读量:6906 次
发布时间:2019-06-27

本文共 4093 字,大约阅读时间需要 13 分钟。

  hot3.png

闲的无聊,用spring3的mvc写了一个google的分页,这个小列子是基于注解的控制部分如下package com.my.google;

import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.my.common.Dispatcher; /**  * @author 姜绵岳 * @version 创建时间:2011-4-9 下午05:02:51  * 一个类似google的分页的Action */@Controllerpublic class GoogleController{	/**	 * 一个类似谷歌的分页	 * @return	 */	@RequestMapping("/google")	public String google(HttpServletRequest request,HttpServletResponse response){		String pageNum=request.getParameter("page");	//当前页		int page=0;		if(null==pageNum||"".equals(pageNum)){			page=1;		}else{			page=Integer.parseInt(pageNum);		}		String forwardUrl="google.do?page=";		List
list=new ArrayList
(); //存放模拟数据 for(int i=0;i<126;i++){ list.add("name xuehan "+i); } Dispatcher dispath=new Dispatcher(); Map map=dispath.getDispatch(forwardUrl, page, 10, list); request.setAttribute("list",map.get("list")); request.setAttribute("tag",map.get("tag")); return "google"; }}
 
package com.my.common;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author 姜绵岳 * @version 创建时间:2011-4-9 下午05:08:59 类说明 */public class Dispatcher
{ /** * action调用分页方法 参数:forwordUrl 分页url,page当前页数,count每页显示条数,list要分页的集合 */ public Map getDispatch(String forwardUrl, int page, int count, List
list) { int totalCount = list.size(); // 数据总条数 int totalPage = totalCount / count; // 总页数 if (totalCount % count > 0) { totalPage = totalCount / count + 1; // 如果总条数%总页数大于0侧总页数加1 } if (page < 0) { page = 1; // 如果当前页数小于1,设为1 } if (page > totalCount) { page = totalCount;// 如果当前页数大于总 } int currentCount = (page-1) * count; // 当前提条数 int endCount = 0; // 结束条数 if (totalCount - currentCount >= count) { endCount = currentCount + count; } else { endCount = totalCount - 1; } List newList = new ArrayList();// 存放返回集合 System.out.println("current " + currentCount + " end" + endCount); for (int i = currentCount; i <= endCount; i++) { newList.add(list.get(i)); } // 获得分页字符串 String tag = getTag(forwardUrl, page, totalPage, currentCount); Map map = new HashMap(); map.put("list", newList); map.put("tag", tag); return map; } /** * 分页标签书写 * * @param forwardUrl * @param page * @param totalPage * @param currentCount * @return */ private String getTag(String forwardUrl, int page, int totalPage, int currentCount) { StringBuffer sb = new StringBuffer(); if(1!=page){ sb.append("
" + "上一页" + " "); } if (totalPage <= 20) { if (totalPage >= 10) { if (totalPage - page > 10) { for (int i = 1; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; }else{ sb.append("
" + i + " "); } } } else { for (int i = 1; i <= totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } else { for (int i = 1; i < totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } else if (totalPage > 20) { if (page > 10) { if (totalPage - page > 10) { for (int i = page - 10; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; } else { sb.append("
" + i + " "); } } } else { for (int i = page - 10; i <= totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } else { sb.append("
" + i + " "); } } } } else { for (int i = 1; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } if(totalPage!=page){ sb.append("
" + "下一页" + " "); } return sb.toString(); }}
 
 

 

转载于:https://my.oschina.net/zaxb/blog/1544067

你可能感兴趣的文章
java程序c:forEach相关实际应用
查看>>
PS命令
查看>>
IP地址规划
查看>>
在ssh项目中导出excel
查看>>
struts-上传
查看>>
javascript的for in
查看>>
MongoDB通过Save修改数据
查看>>
大容量导入和导出数据 -- 介绍
查看>>
我的友情链接
查看>>
第三次作业
查看>>
基于MariaDB-10 半同步复制数据的配置解析
查看>>
关于虚拟机安装linux的发生的网络不通的问题。及解决方案
查看>>
Memcache的简单笔记
查看>>
忘记密码
查看>>
CentOS虚拟机静态IP配置过程及问题分析
查看>>
第一天 css学习
查看>>
linux sort(每日一令之二十二)
查看>>
Cisco Plus 大会资料
查看>>
用thinkphp做的留言板
查看>>
让scanf()接收空格
查看>>